A knowledge engineer is a computer systems expert who is trained in the field of expert systems. Receiving information from domain experts, the knowledge engineers interpret the presented information and relay it to computer programmers who code the information in to systems databases to be accessed by end-users. Knowledge engineers are used primarily in the construction process of computer systems (Bultman, Kuipers & van Harmelen 2000).
Using information relayed by the domain experts, knowledge engineers are experts at constructing meaningful, useful, and simplistic Knowledge-Based Systems (KBS). Often knowledge engineers are employed to break down the information passed on by domain experts into more simplistic terms which cannot be easily communicated by the highly technalized domain expert (ESDG 2000).
In recent years, the role of knowledge engineers has come under intense scrutiny from those specializing in the area of KBS and expert systems. Many computer systems experts believe that knowledge experts role in the creation and maintenance of complex computer systems is unnecessary, and can be simply left out of the process of systems creation. Conversely, some computer systems experts believe that their role is vital in the fact that they provide a good middle-man between highly specialized domain experts and computer coders. Known for their ability to simplify experts information and instructions, knowledge engineers are useful in that they can interpret, and organize internal information on how to make systems decisions (Aylett & Doniat 2002).
The term "Knowledge engineer" first appeared in the 1980s in the first wave of commercialization of AI – the purpose of the job is to work with a client who wants an expert system created for them or their business. A knowledge engineer would collect the information that the client wants in the system and then put it all into the program. For example, if a client, who is an expert in snakes, wanted a program to identify different types of snakes, then the knowledge engineer will need to collect the necessary information about different species and attributes. It is up to the knowledge engineer to capture the knowledge of the domain expert into a knowledge base, which is then used for an expert system.
Validation is the process of ensuring that something is correct or conforms to a certain standard. A knowledge engineer is required to carry out data collection and data entry, but they must use validation in order to ensure that the data they collect, and then enter into their systems, fall within the accepted boundaries of the application collecting the data.
It is important that a knowledge engineer incorporates validation procedures into their systems within the program code. This means that when a user enters information into the system, mistakes will not be made. For example, if the expert system asks for a ‘yes’ or ‘no’ answer, it is up to the knowledge engineer to include code in the program that will stop the user from entering any information other than a yes or no answer. Another example is if the user is asked to enter their surname, the knowledge engineer will need to incorporate a validation procedure that causes the program to validate that only letters are entered and not numbers.